Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Вот условие на проверку баффа. Но тут может быть проблема, если у тебя есть станящие способности, которые используют не этот бафф.
Но мой способ, предложенный выше, также должен работать, причём независимо от того, какой станящий бафф наложен.
Здравствуй, посмотрел карту, на счет вейтов кстати не думаю хорошая идея ими пользоваться, но вызывать какую именно "щупальце" в принципе можно сделать так(проверкой на уровень способности) и все это будет одним триггером
тоже самое можно и с первыми 3 сократить в 1, простой проверкой на уровень способности
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
nvc123, увы там дефолт ИИ, недаст особо управлять мобами.
Щяс скину пример из доты но более понятный, как заставить нейтралов ходить и атаковать.
Вот вам пример контроля нейтралами.
Меняется - можно поставить свой бафф, что сделан на основе оригинальный. Естественно, нельзя сделать так, чтобы отравленные стрелы станили.
Стан только у баша.
EviLInside, в структуре находится таймер и группа, таймер запускаешь на функцию удаления, а всем юнитам в группе в этой структуре сохраняешь саму структуру, чтобы доставать и наносить разовый урон если кто-то из них его получит от постороннего источника, в таймер тоже сохраняешь, по окончании действия таймера выбираешь всех юнитов в группе и очищаешь им сохранённую структуру, т.к. сама структура лишь 1 раз создалась на этот спелл, то и уничтожить её вместе с группой и таймером достаточно 1 раз, в истекающем таймере
короче один раз создал и посохранял её везде, потом уничтожил в истекающем таймере и очистил везде где сохранял
Найти эту способность в РО, скопировать и затем вставить через РО в свою карту. Если способность триггерная также скопировать код через редактор триггеров. (До копирования в параметрах редактора поставить галочку - Автоматически создавать новые переменные)
PS - Герою добавить ее также через РО
Далее, мне сделали способность в заказах, я перенес на карту и она работала при проверке. Когда я удалил героя проверки, то способность перестала работать, хотя там не указывается юнит. В чем причина — непонятно
Причина в твоих руках, которые решили поломать спелл)
Скрин с моего спелла
И отредаченный тобой
Ну и небольшой совет, если ты продолжишь лепить карту в таком духе, то рано или поздно действия с открытием вкладки переменных юнитов у тебя начнут дико виснуть, а большое кол-во блокираторов заставят карту компилиться пол часа
Но если это приближённый к идеальному размеру, тогда пофиг
абилку поправил, помимо этого ещё разрешенные цели не были указаны верно
С драгуном хз, я сбросил пару данных и всё заработало
Я юзал морф, а не грейд. Грейд был в другой наработке, и там не было проблем с анимацией. В наработке с морфом нет никаких вейтов.
Всё остальное какая-то ерунда, какие переменные? Грейд делается и всё.
Отмена для меня преимущество такое себе
И тем не не менее, отменять грейд тебе нужно, потому преимущество вполне себе.
Я больше-то вот как раз вышеупомянутые баги имел в виду
Эффекты аур могут остаться на юните, с героями ещё хуже. Так-то всё написано тут, пункт 19.
Событие "применяет способность" произойдет только если вручную нажать на способность ледяной стрелы и на врага. При авто атаках событие работать не будет.
В будущем для проверки таких моментов пользуйтесь дебагом. В данном случае нужно отключить условие и выводить имя юнита тригера, тогда бы вы увидели что когда примнешь способность имя юнита выводится в чат, а когда он автоатачит, то имя не выводится, что означало бы что триггер не срабатывает, не срабатывает событие
Поиграйся с орбэффектами, добавляя в разрешённые цели необходимую клиссификацию. А вообще, просто поступи так:
Атака есть изначально, но при ударе юнитом по камню или дереву, проверка, имеет ли он кирку, и если да, тогда ролить переменную от N до N, и если равно N - создать такой то ресурс.
Можно также сделать систему с уровнем кирки(ну типа деревянная каменная железная алмазная окда), и по уровню кирки определять коилчество последовательностей "Иначе": Роллить первое число от 1 до 100 - камень. Если не выпал, но кирка у тебя выше деревянной - Роллить от 1 до 200 - железо. Если не выпало, но кирка выше каменной - роллить от 1 до 1000 - аметист, и т.д.
Daniil33, нет, надо через if-then-else проверять, что камень там еще "живой", и если нет, создавать новый и заносить в переменную.
И так циклом для каждой области
Сами области в массив заносить при инициализации карты
Щас попробую решить практикой.
Жди
И чтож ты меня обманываешь?
Нет ни какой ошибки
Ах да уточнить забыл
Не менеджером импорта а в редакторе звука,тыкаешь пкм на звук там есть строчка "Заменить стандартный звук" и вот там указываешь на "аля" текстовый документ с форматом "wav"
//globals
integer array VariousFramesAddresses
constant integer GOLD_TEXTFRAME_ADDRESS_INDEX=1
constant integer LUMBER_TEXTFRAME_ADDRESS_INDEX=2
constant integer UPKEEP_TEXTFRAME_ADDRESS_INDEX=3
constant integer SUPPLY_TEXTFRAME_ADDRESS_INDEX=4
//memhack init
set pGetFrameTextAddress = GameDLL + 0x61C7B0
function GetFrameTextAddress takes string name, integer id returns integer
return CallFastCallWith2Args(pGetFrameTextAddress, GetStringAddress(name), id)
endfunction
function GetResourceBarsAddresses takes nothing returns nothing
local integer a=GetFrameTextAddress("ResourceBarGoldText",0)
if a>0 then
set VariousFramesAddresses[GOLD_TEXTFRAME_ADDRESS_INDEX]=a
endif
set a=GetFrameTextAddress("ResourceBarLumberText",0)
if a>0 then
set VariousFramesAddresses[LUMBER_TEXTFRAME_ADDRESS_INDEX]=a
endif
set a=GetFrameTextAddress("ResourceBarSupplyText",0)
if a>0 then
set VariousFramesAddresses[SUPPLY_TEXTFRAME_ADDRESS_INDEX]=a
endif
set a=GetFrameTextAddress("ResourceBarUpkeepText",0)
if a>0 then
set VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX]=a
endif
endfunction
call CallThisCallWith2Args(GameDLL+0x60CA10,VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX],GetStringAddress("random str "+I2S(GetRandomInt(1,2000))))
Какие-то объекты могут создавать зависимости, осовбожегние хендла не значит, что объект чисто удален. В целом это всё уже из области псевдопрограммирования - не стоит волновться о таких мелочах. Create & Destroy работают достаточно хорошо. И да, объекты это все agent
type agent extends handle all reference counted objects
"Недостаточно ресурсов памяти для обработки этой команды", получал такое когда вынуждал варик скушать больше гигабайта оперативки, но это завист от карты, в момент краша посмотри в диспетчере задач сколько war3.exe кушает
похоже более всего на мусор, попадающий в память откуда-то извне. Обычно пропущенная строка автокаста такой фигней страдает. Нельзя точно сказать, нужно менять поля и смотреть. К счастью, описания можно менять и локально, не перепаковывая карту
Нужно изначально поставить недоступность гоблина у всех игроков. После выбора рас выбрать всех игроков с расой пират и проверить всех его союзников на расу гоблин. Если есть, то сделать гоблина доступным.
P. S. Что-то не понял, где расы, а где герои?
Кирилл Филипов, Если звук внутри карты, то ничего доп качать людям не придётся, если звук в корне варкрафта (в доп папке), то разумеется да, людям придётся качать и пользоваться вашей инструкцией
Hate, И стандартные и импортируемые. Позже было установлено, что звуки тихие из-за соответствующих настроек в файле - AnimSounds.slk. Но изменённый и импортированный файл не работает. Упоминалось тут
Скрин
rsfghd, Не получится, так как его нужно только заменить, а не "использовать как звук".
Можно заменить у модели в W3ME событийный объект на ненужный звук с максимальной громкостью.
quq_CCCP:
Спасибо, понял что надо создавать форс единожды, чтобы утечек не было
Мдаа уж, оказывается все дело в том, что забыл поставить исходные позиции другим игрокам, хорошо хоть проверить догадался, засиделся за редактором
ScorpioT1000, мне кажется, регионы он там не должен создавать =) вот точки да, а регионы же обычно берут из ныне существующих регионов. если создадим его в редакторе, его же и указывают в функции. ниче не создает.
такая гуи-команда странная, не помню такую в boolean. Типа ПРОВЕРКА что все юниты группы в регионе?
в скрине мб локалки не обнулены. там BJ-функции, раскрой и посмотри нет ли их. пример
советовал бы строить по-другому конструкцию.
если честно, не понятно, что за карту ты скинул. я тебе просто пример оптимизации на гуи показал. Но не решения ваших проблем. на jass этого бы не потребовалось, ибо на гуи приходится изворачиваться из-за ограничении команд и утечности bj-функции. там группы утекают, где-то не обнуляют/не удаляют.
Я короче более менее понял вашу ситуацию. 4триггер у вас не будет работать из-за переменной. там надо в фильтре вместо Picked unit ставить Matching Unit. С 4 примером я кажется ошибся. Там у меня по другому работает: выделяю всех из группы и нахожу рандомного юнита, а надо выделить вокруг гг, которые состоят в группе.
Я условия проверил, и они работают. ну она работает от случая к случаю. Что-то изменяю, и пашет. Вношу изменения снова, не работает. вернее, часть условия работает верно.
Пример, есть 4 игрока:
красный (собственно я) => несколько юнитов могут не двигаться, а остальные разбегаются
синий (подконтрольный союзник) => несколько юнитов могут не двигаться, а остальные разбегаются
голубой враг
фиолетовый нейтральный
все войска кроме подвижных подконтрольных являются как бы препятствием
пример, я сделал все работало. кроме синего неподвижных юнитов, решил в условиях похимичить, и сломал, короче, перестали работать: теперь, на голубого не работает. иногда не пашет на друкгих.
забавно но факт: тут бывает где то в условиях обрывается поток, и поэтому не работает что то. что делать то? условие как бы нужное, ну раз не пашет, надо понять причину
--если этот юниты подконтрольны частично
local flag1=GetPlayerAlliance(PlaYer, pp, ALLIANCE_SHARED_CONTROL)
--если этот юниты подконтрольны полностью
local flag2=GetPlayerAlliance(PlaYer, pp, bj_ALLIANCE_ALLIED_ADVUNITS)
--если игрок нейтральный
--local flag3=GetPlayerAlliance(PlaYer, pp, ALLIANCE_PASSIVE)
продвинутый контроль не нужен, только обычного достаточно. В редакторе его не включить, нужно частичный и только потом открывается полный. Также и через триггеры. Думаю, что достаточно проверять частичное, иначе продвинутый обрывает поток
flag2=GetPlayerAlliance(PlaYer, pp, bj_ALLIANCE_ALLIED_ADVUNITS)
- ОБНОВЛЕНИЕ 1.17
--------------------------------------------------------------------------
НОВЫЕ ВОЗМОЖНОСТИ
- Добавлены два нейтральных героя - Повелитель Огня и алхимик. Подробнее об этих героях и их способностях рассказано на веб-сайте http://www.battle.net/war3 .
Увы но нет... Главная особенность той карты что все герои открываются по мере накопления очков за игру на карте, они не открыты сразу и не походу первой катки открываются а лишь с накоплением общих баллов. Я весь мозг сломал уже, в попытках вспомнить. Эх...
Я протестировал способность, и вот, что заметил: ни текущее, ни максимальное здоровье не изменяются от этой способности. При использовании заклинания на юнита накладывается бафф, который позволяет ему увеличить свое здоровье выше максимального. Этот бафф исчезает только тогда, когда герой истратил излишки здоровья. Самого же баффа в редакторе почему-то не существует, но к нему можно обратиться через триггеры. Bdbl — название баффа.
» WarCraft 3 / Не работает триггерная способность!
» WarCraft 3 / Вылетает карта
» WarCraft 3 / Вопросы по способностям
» WarCraft 3 / Способность на заказ
» WarCraft 3 / Warlords
» WarCraft 3 / Не работает триггер
» WarCraft 3 / Типы файлов в редакторе карт
» WarCraft 3 / Добыча камней
» WarCraft 3 / Расходы
» WarCraft 3 / Проверка Предметов и их удаление
» StarCraft 2 / Сложность игры
» WarCraft 3 / Вылет варика
» Администрация XGM / Картинки-ссылки не работают.
» WarCraft 3 / Нестандартные требования
» WarCraft 3 / Импорт звука
» Администрация XGM / Генерация превью
» WarCraft 3 / Условие не работает
» WarCraft 3 / Атака ИИ с дирижаблем
» WarCraft 3 / Не могу найти иконку
» WarCraft 3 / Помогите найти карту
» WarCraft 3 / Похищение жизни